home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- NSCHART Version 1.05
- Shareware User Manual
-
- for
-
- IBM PC, XT, AT
- and
- Compatibles
-
-
- SILTRONIX, Inc.
- COPYRIGHT (c) 1987, 1988, 1989, 1990
- by
- SILTRONIX
-
- All Rights Reserved
-
-
-
-
- Program License Agreement
-
- Copyright: The program and its related documentation are
- copyrighted. You may not use, copy, modify, or transfer the program or
- documentation or any copy except as expressly provided in this
- agreement. Information in this document is subject to change without
- notice and does not represent a commitment on the part of SILTRONIX,
- Inc.
-
- License: You have the nonexclusive right to use the enclosed
- program. You may physically transfer the program from one computer to
- another. You may not distribute copies of the program or accompanying
- documentation to others for profit, excepting a reasonable duplication
- fee. You may not modify or translate the program or documentation.
-
- Terms: This license is effective until terminated. You may
- terminate the agreement by destroying the program and all copies thereof
- and its documentation. This license will also terminate if you fail to
- comply with any terms or conditions of this agreement; you agree upon
- such termination to destroy all copies of the program and documentation.
- Use of the program constitutes your acceptance of these terms.
-
- Warranty
-
- SILTRONIX does not warrant anything.
-
- THIS WARRANTY IS IN LIEU OF ALL OTHER EXPRESS OR STATUTORY
- WARRANTIES, AND THE DURATION OF ANY IMPLIED WARRANTY, INCLUDING BUT
- NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE, IS HEREBY LIMITED TO SAID NINETY
- (90) DAY PERIOD. SILTRONIX LIABILITY IS LIMITED SOLELY TO THE
- REPLACEMENT OF THE DEFECTIVE PRODUCT AND SHALL NOT IN ANY EVENT
- INCLUDE DAMAGES FOR LOSS OF USE, OR LOSS OF ANTICIPATED PROFITS OR
- BENEFITS, OR OTHER INCIDENTAL OR CONSEQUENTIAL COSTS, EXPENSES, OR
- DAMAGES INCLUDING WITHOUT LIMITATION ANY DATA OR INFORMATION WHICH
- MAY BE LOST OR RENDERED INACCURATE, EVEN IF SILTRONIX HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-
-
-
-
-
- NSChart is a trademark of SILTRONIX, Inc.
-
- Microsoft and MS-DOS are registered trademarks of
- Microsoft Corporation.
-
- IBM is a registered trademark of
- International Business Machines Corporation.
-
-
-
- SILTRONIX
- Post Office Box 82544
- San Diego, California 92138-2544
-
- (619)541-2502
-
-
- Preface
-
- This document is intended ONLY as a minimal introduction to NSChart.
- If you wish to receive the real manual please register your copy of
- NSChart with Siltronix by phoning the number above and paying the $35
- registration fee.
-
-
- Command Summary
-
- This section is a quick reference guide to using NSChart by
- function, parameter, keystroke, command, or screen.
-
- Function Keystroke Command Screen
-
- About this program; A Main Menu
- change Directory; D Main Menu
- draw Chart; C Main Menu
- Exit; E Main Menu
- file Mask; M Main Menu
- Hard copy; H Main Menu
- Options; O Main Menu
- Prettify input file; P Main Menu
- Select input file S Main Menu
-
-
- Parameter Meaning Screen
-
- \subdir use subdirectory in root Change Directory
- chart width width of chart (excluding margin) Options Menu;
- chart length length of chart (excluding margin) Options Menu
-
- file name input file name appears on printed Options Menu
- chart
- file Mask Mask to screen input files Main Menu;
-
- left margin white space to left of chart Options Menu
- line width thickness of graphic lines in bits Options Menu
-
- paper width width of paper in printer Options Menu
- paper length length of paper in printer Options Menu
-
- sideways printed output rotated 90 degree Options Menu
- subdir use subdirectory of current dir. Change Directory
-
- top margin white space above chart Options Menu
-
-
- Command Meaning Screen
-
- . cancel(use current directory) Change Directory
- .. change to parent directory Change Directory
-
- *.* any file File Mask;
- *.ext any file ending in ".ext" File Mask
- unit1.* all "unit1." files with any ext. File Mask
-
-
-
-
- a?. two letters starting with "a" File Mask
- b*.* any file beginning with "b" File Mask
- C draw Chart Main Menu;
-
- <CTRL>-End move view to bottom right corner Draw Chart;
- <CTRL>-Home move view to top left corner of chart Draw Chart
- <CTRL>-left ar. move view one window left Draw Chart
- <CTRL>-right ar. move view one window right Draw Chart
-
- D change Directory Main Menu
- down arrow move view 8 pixels up Draw Chart
-
- E Exit Main Menu
- End move vertically to bottom of chart Draw Chart
-
- H Hard copy Main Menu
- Home move vertically to top of chart Draw Chart
-
- left arrow move view 8 pixels to left Draw Chart
-
- M file Mask Main Menu
-
- O Options Main Menu
-
- P Prettify input file Main Menu
- Pg Up move view one window up Draw Chart
- Pg Down move view one window down Draw Chart
-
- right arrow move view 8 pixels to right Draw Chart
-
- S Select input file Main Menu
-
- up arrow move view 8 pixels down Draw Chart
-
-
- Screen Action Function
-
- Main Menu D change Directory;
- M file Mask;
- S Select input file;
- P Prettify input file;
- C draw Chart;
- H Hard copy;
- O Options;
- A About this program;
- E Exit
-
-
-
-
- change Directory . cancel (use current directory)
- .. parent
- \subdirectory use subdirectory in root
- subdirectory use subdirectory of current
- directory
-
- file Mask........*.ext any file with an extension of
- "ext"
- unit1.* all "unit1" files with any
- extension
- b*.* all files beginning with "b"
- a?. two-letter file names
- beginning with "a" and no ext.
-
- draw Chart left arrow move view 8 pixels to left
- right arrow move view 8 pixels to right
- down arrow move view 8 pixels up
- up arrow move view 8 pixels down
- <CTRL>-left arrow move view one window left
- <CTRL>-right arrow move view one window right
- Page Up move view one window up
- Page Down move view one window down
- Home move vert. to top of chart
- End move vert. to bottom of chart
- <CTRL>-Home move view to top left corner
- of chart
- <CTRL> -End move view to bottom right
- corner of chart
- N redraw chart at normal size
- E redraw chart expanded
- R redraw chart reduced
- F redraw chart to fit on screen
-
- Options Menu paper width width of paper in printer
- paper length length of one sheet of paper
- in printer
- left margin white space to left of chart
- top margin white space above chart
- chart width width of chart (excluding
- margin)
- chart length length of chart (excluding
- margin)
-
- line width thickness of graphic lines in
- bits
- sideways printed output rotated 90 deg.
- when selected
- file name input file name appears on
- printed chart when selected
-
-
-
-
-
- Structured Language for NSChart
-
- NSChart and the user must communicate. NSChart needs syntactically
- predictable input. NSChart's input is an ASCII text file. The
- syntactical rules of NSPDL define a structured language, a program
- design language (PDL). Because it pertains to Nassi-Shneiderman charts,
- the NSChart structured language is called NSPDL.
-
- Text strings always appear in the chart centered in their box. They
- may either be labels or process descriptions. Any string that describes
- a process may be replaced by a more complex structure. This allows you
- to start with a very simple overview that becomes more detailed as the
- design of the program is refined. Text to be printed in the flow
- diagram must be enclosed within a pair of " (quotation marks); -- "like
- this". Any character except the quotation mark may be used in the
- enclosed text. A text string can also be empty -- "". This is useful
- where NSPDL requires a text string but you do not want any text to
- appear on the NS chart.
-
-
-
- The .key words used by NSChart relate to general key words
- referenced by structured programming languages. They tell the NSChart
- program what to draw, but do not themselves appear in the chart. The
- list of NSChart key words is as follows:
-
- begin do endcase endrepeat if then
- block else endfor endwhile loop title
- call end endif for of until
- case endblock endloop goto repeat while
-
- Except for the basic process statement, each control statement must
- include at least one key word, indicating to NSChart the type of symbol
- to be drawn.
- Key words are case independent, i.e., they may be in upper or lower
- case or even a mixture of the two.
-
- The minimum requirement for an NSChart input file is that it must
- contain at least one valid statement that produces a cohesive Nassi-
- Shneiderman flow diagram. The different kinds of control statements are
- explained below.
-
-
-
- NSPDL Syntax Discussion
-
- In the syntax descriptions of the key words in this section, the
- symbol "<text>" refers to any string of zero or more characters; the
- word "statement" itself refers to any NSPDL construct. In the examples
- that accompany each NSPDL construct, the NSPDL text is shown. Items in
- braces may be filled with other NSChart control statements to allow for
- nested logic.
-
-
-
- Title directive
-
- The title; directive is optional; its key word is, appropriately,
- "title". The text string enclosed in quotation marks following it
- appears as the title of the NS chart. The title directive is different
- from all other NSChart key words in that it can appear only once and
- only at the beginning of the text file and that it is the only key word
- construct whose output is not enclosed in any sort of box.
-
- The syntax of the title directive is:
-
- [ title "<text>" ]
-
- Here is an example:
-
- title "Sample Nassi-Shneiderman Chart"
-
- This directive produces the title, "Sample Nassi-Shneiderman Chart",
- centered at the top of the chart above the line defining the top
- boundary of the chart.
-
-
-
- PROCESS statement
-
- The basic control statement is the PROCESS statement;. It does not
- require a key word. It is created by entering a string of displayable
- ASCII characters enclosed in " (quotation marks);. This produces a
- simple flow; symbol with the PROCESS statement inside it.
-
- The syntax of the PROCESS statement is:
-
- "<text>"
-
- Here is an example:
-
- "Read the next record."
-
-
-
- CALL statement
-
- The CALL statement; is used to draw attention to a process that
- appears elsewhere in the flow chart and continues where the call
- statement leaves off. Its key word is "call". It produces a simple-
- flow symbol lightly highlighted inside and next to its borders to
- indicate that the process is expanded elsewhere.
-
- The syntax of the CALL statement is:
-
- CALL "<text>"
-
- Here is an example:
-
- call "X5INBUF -- Read and decode next input buffer."
-
-
-
-
- GOTO statement
-
- The GOTO statement; is a deviation from structured programming based
- on pragmatism. In the real programming world there are situations which
- force compromise, such as an abnormal exit from a process when the
- elegant solution carries too much overhead (in the opinion of the chief
- decision maker). The GOTO statement indicates a direct transfer of
- control to a process that appears elsewhere in the flow chart. Its key
- word is "goto". It produces a simple-flow symbol heavily highlighted
- inside and next to its borders to indicate not just that control is
- transferred to a process that is expanded elsewhere, but that this
- transfer is an abnormal break in the flow.
-
-
- The syntax of the GOTO statement is:
-
- GOTO "<text>"
-
- Here is an example:
-
- goto "Power failure emergency shut-down routine"
-
-
-
-
- IF statement
-
- The IF statement; depicts a transfer of control based upon a Boolean
- condition. Its key words are: "if", "then", and "endif"; an optional
- key word is "else". Note that only the conditional statement requires
- any text. Text for labels and their dependent statements may be void.
-
- The syntax of the IF statement is:
-
- IF "<text>" then [ [ "<text>": ]
- [ { statement(s) } ] ]
- [ else [ [ "<text>": ]
- [ { statement(s) } ] ] ]
- endif
-
- Here is an example:
-
- if "Am I going on a trip?" then "yes" :
- "Take out traveler's checks."
- else "no" :
- "Take out cash."
- endif
-
-
-
-
- CASE statement
-
- The CASE statement; marks the beginning of a case block and
- transfers control to a set of statements based upon the clause contained
- within the statement itself. Its key words are "case", "of", and
- "endcase". The CASE statement syntax requires at least two cases.
- There is no upper limit on the number of cases.
-
- The syntax of the CASE statement is:
-
- CASE"<text>" of
- "<text>" : { statement(s) }
- { "<text>" : { statement(s) } }
- endcase
-
- Here is an example:
-
- case "I didn't get out of bed today because" of
- "faulty alarm" : "no excuse -- go to work"
- "lazy" : "call in sick"
- "sick" : "go see doctor"
- "weekend" : "relax & enjoy"
- endcase
-
-
-
-
- FOR/WHILE statement
-
- Looping structures where the conditional item is tested at the top
- of the loop; can be produced by two different but functionally identical
- statements. The first of these, the FOR statement;, has two sets of key
- words: "for", "do", and "endfor"; and "for", "loop", and "endloop".
- FOR loops are used for traversing an entire range, such as searching an
- array.
-
- The syntax of the two corresponding FOR statements is:
-
- FOR "<text>" do FOR "<text>" loop
- { statement(s) } -- or -- { statement(s) }
- endfor endloop
-
- The second of these two loop structures is the WHILE statement;.
- Its keywords are: "while", "do", and "endwhile"; and "while", ".loop",
- and "endloop". WHILE loops (as opposed to FOR loops) terminate based on
- a change of some condition within the loop.
-
- The syntax of the WHILE statement is:
-
- WHILE "<text>" do WHILE "<text>" loop
- { statement(s) } -- or -- { statement(s) }
- endwhile endloop
-
- Here is an example of each statement type; note that the chart looks
- the same for both:
-
- for "during break" do while "during break" do
- "eat lunch" -- or -- "eat lunch"
- endfor endwhile
-
-
-
-
- REPEAT statement
-
- The REPEAT statement; is used to produce a loop;ing structure where
- the conditional item is tested at the bottom of the loop. It has two
- sets of keywords: "repeat" and "until", and "repeat" and "endrepeat".
-
- The syntax of the two sets of key words is:
-
- REPEAT REPEAT
- { statement(s) } -- or -- { statements(s) }
- until "<text>" endrepeat "<text>"
-
- Here is an example:
-
- repeat
- "Say 'Play it again, Sam!'"
- until "Stop when Sam plays it again."
-
-
-
-
- BLOCK/LOOP statement
-
- A functional blocking structure is provided by the BLOCK statement
- and/or LOOP statement;. Its function is to define a scope, i.e., to set
- limits -- "begin" to "end" in some languages -- around a functionally
- discrete process. By extension, the block construct can be used to
- indicate a generic loop, where the process is iterative, yet it is not
- known nor perhaps par-ticularly relevant to define it as either a while
- or repeat loop. This statement has two sets of key words which are
- functionally identical: "block" and "endblock", and "loop" and
- "endloop".
-
- The syntax of the BLOCK or LOOP statement is:
-
- BLOCK "<text>" LOOP "<text>"
- { statement(s) } -- or -- { statement(s) }
- endblock "<text>" endloop "<text>"
-
- Here is an example of each statement type; note that the chart looks
- the same for both:
-
- block "Give all neighborhood kids a dollar."
- "Give kid a dollar and go to next house."
- endblock "Kids are rich and you're broke."
-
- -- or --
-
- loop "Give all neighborhood kids a dollar."
- "Give kid a dollar and go to next house."
- endloop "Kids are rich and you're broke."
-
-
-
-
- BEGIN-END statement
-
- The BEGIN-END statement; is an aid for generating correctly nested
- NSPDL. It has no effect on the diagram produced by NSChart. Its
- key words are "begin" and "end". Text nested within these key words
- produces the same chart as though these two delimiters had not been
- there. Also, there is no requirement for any text to appear between
- "begin" and "end".
-
- The syntax of the BEGIN-END statement is:
-
- begin
- [ { statement(s) } ]
- end
-
- Here is an example:
-
- begin
- call "Get the next input (ABC function)."
- "Be sure to replace this node with the logic
- structure of the random transcendental number
- generator once it is designed."
- call "Save the new results (XYZ function)."
- end
-
-
-
-
-
-
- ----------------end-of-author's-documentation---------------
-
- Software Library Information:
-
- This disk copy provided as a service of
-
- Public (software) Library
-
- We are not the authors of this program, nor are we associated
- with the author in any way other than as a distributor of the
- program in accordance with the author's terms of distribution.
-
- Please direct shareware payments and specific questions about
- this program to the author of the program, whose name appears
- elsewhere in this documentation. If you have trouble getting
- in touch with the author, we will do whatever we can to help
- you with your questions. All programs have been tested and do
- run. To report problems, please use the form that is in the
- file PROBLEM.DOC on many of our disks or in other written for-
- mat with screen printouts, if possible. PsL cannot debug pro-
- programs over the telephone, though we can answer questions.
-
- Disks in the PsL are updated monthly, so if you did not get
- this disk directly from the PsL, you should be aware that the
- files in this set may no longer be the current versions. Also,
- if you got this disk from another vendor and are having prob-
- lems, be aware that some files may have become corrupted or
- lost by that vendor. Get a current, working disk from PsL.
-
- For a copy of the latest monthly software library newsletter
- and a list of the 2,000+ disks in the library, call or write
-
- Public (software) Library
- P.O.Box 35705 - F
- Houston, TX 77235-5705
-
- 1-800-2424-PSL
- MC/Visa/AmEx
-
- Outside of U.S. or in Texas
- or for general information,
- Call 1-713-524-6394
-
- PsL also has an outstanding
- catalog for the Macintosh.
-